HTTP Caching হল একটি প্রক্রিয়া যার মাধ্যমে ওয়েব সার্ভিস, ব্রাউজার বা অন্য কোনো ক্লায়েন্ট ওয়েব পৃষ্ঠার কপি বা অন্যান্য রিসোর্স সংরক্ষণ করে রাখে যাতে পরবর্তী রিকোয়েস্টে সেই ডেটা পুনরায় সার্ভার থেকে না আনা হয়। এটি সার্ভারের লোড কমাতে, ওয়েব পেজ লোডিং টাইম দ্রুত করতে এবং নেটওয়ার্ক ব্যান্ডউইথ সংরক্ষণ করতে সাহায্য করে।
HTTP কেশিংয়ের মাধ্যমে, ক্লায়েন্ট এবং সার্ভার একটি নির্দিষ্ট সময়ের জন্য ডেটা পুনরায় ব্যবহার করতে পারে, ফলে ওভারহেড কমে যায় এবং কর্মক্ষমতা বৃদ্ধি পায়।
HTTP কেশিং বেশ কিছু মেকানিজমের মাধ্যমে কাজ করে, যেমন Cache-Control, Expires, ETag, এবং Last-Modified হেডার। নিচে এই কেশিং মেকানিজমগুলি বিস্তারিতভাবে আলোচনা করা হলো:
Cache-Control হেডার হল HTTP কেশিংয়ের সবচেয়ে গুরুত্বপূর্ণ অংশ। এটি সার্ভার থেকে ক্লায়েন্টকে নির্দেশ দেয় যে, কেমন করে কেচিং হবে এবং কিভাবে কেচিং ব্যবহার করা উচিত। এই হেডারের মাধ্যমে ক্লায়েন্টের কেচিং আচরণ নিয়ন্ত্রণ করা যায়।
max-age=3600
মানে 1 ঘণ্টা।max-age
এর মতোই, তবে এটি শুধুমাত্র শেয়ারড কেচে (যেমন CDN) প্রযোজ্য।Cache-Control: max-age=3600, public
Expires হেডার একটি নির্দিষ্ট সময়ের জন্য কেচিং ইঙ্গিত দেয়, যার পরে ডেটাটি পুরানো মনে করা হবে। এটি Date হেডারের সাহায্যে ক্যালেন্ডার টাইমে সময় নির্ধারণ করে। তবে, Cache-Control হেডারের আবির্ভাবের সাথে Expires হেডারের ব্যবহার কমেছে, কারণ Cache-Control আরও নমনীয় এবং সময় নির্ধারণ করতে সহজ।
Expires: Thu, 01 Dec 2024 16:00:00 GMT
ETag একটি শক্তিশালী কেশিং মেকানিজম যা সার্ভারের সাথে কেচড ডেটার সঠিকতা যাচাই করতে ব্যবহৃত হয়। এটি একটি ইউনিক স্ট্রিং যা রিসোর্সের বর্তমান সংস্করণকে নির্দেশ করে। সার্ভার যখন একটি রিসোর্স পরিবর্তন করে, তখন এটি একটি নতুন ETag প্রদান করবে, যা ক্লায়েন্টের কেচের সাথে তুলনা করা যেতে পারে।
ETag: "686897696a7c876b7e"
Last-Modified হেডার সার্ভারের রিসোর্সের সর্বশেষ পরিবর্তনের সময় নির্ধারণ করে। ক্লায়েন্ট যখন একটি রিসোর্স রিকোয়েস্ট করে, তখন সার্ভার এটি ক্লায়েন্টকে জানায়। পরবর্তীতে, ক্লায়েন্ট If-Modified-Since হেডারের মাধ্যমে জানায় যে, এটি কেবলমাত্র সেই রিসোর্স রিকোয়েস্ট করবে যদি এটি নির্দিষ্ট সময়ের পর পরিবর্তিত হয়।
If-Modified-Since
হেডার পাঠায়, যাতে সার্ভার জানাতে পারে যে, রিসোর্সটি শেষবার কবে পরিবর্তিত হয়েছে।Last-Modified: Wed, 21 Oct 2020 07:28:00 GMT
Vary হেডার সার্ভারকে বলে যে, কেচিং সিদ্ধান্ত নেওয়ার জন্য কোন হেডার বা বৈশিষ্ট্য গুলি ব্যবহার করতে হবে। এটি সাধারণত User-Agent, Accept-Encoding, বা অন্যান্য কন্টেন্ট হেডার অনুযায়ী কেচিং পরিচালনা করতে ব্যবহৃত হয়।
Vary: Accept-Encoding
এটি নির্দেশ দেয় যে, কেচিংয়ের সিদ্ধান্ত Accept-Encoding হেডারের উপর নির্ভর করবে, অর্থাৎ কম্প্রেসড বা আনকম্প্রেসড কন্টেন্ট কেচে রাখা হবে।
কেচে রাখা ডেটা কখনও কখনও invalidate বা অকার্যকর হতে পারে, যেমন:
এটি নিশ্চিত করার জন্য Cache-Control, ETag, এবং Expires হেডারগুলো সঠিকভাবে ব্যবহৃত হতে হয়।
HTTP কেশিং মেকানিজম হল ওয়েব পারফরম্যান্সের উন্নতিতে সহায়ক একটি শক্তিশালী পদ্ধতি, যা সার্ভারের লোড কমাতে এবং ওয়েব পেজ লোড টাইম দ্রুত করতে সাহায্য করে। প্রধান কেশিং হেডারগুলি যেমন Cache-Control, Expires, ETag, এবং Last-Modified ব্যবহার করে, ওয়েব অ্যাপ্লিকেশনগুলি ডেটার নিরাপত্তা এবং কার্যকারিতা বজায় রাখার পাশাপাশি কেচিং পরিচালনা করতে পারে। HTTP কেশিং যখন সঠিকভাবে ব্যবহৃত হয়, তখন এটি ব্যবহারকারীর অভিজ্ঞতাকে অনেক উন্নত করতে পারে এবং সার্ভারের প্রতি চাপ কমিয়ে দেয়।
Read more